/* 
 * File:   HLATree.h
 * Author: hyjkim
 *
 * Created on April 26, 2012, 2:44 PM
 */

#ifndef NODE_H
#include "Node.h"
#define NODE_H
#endif

#include <zlib.h>
#include <iostream>
#include <vector>
#include <deque>
#include "kseq.h"
#include <cstring>

KSEQ_INIT(gzFile, gzread)

class HLATree {
    Node _root;

    void _insertRefNode(Node *currentNode, kseq_t* seq, std::deque<std::string> hla);
    void _recursivePrint(Node* currentNode);
    void _recursivePrintSequence(Node* currentNode);

public:
    HLATree();
    void buildHLATree(std::string filename);
    void printTree();
    void printSequences();
};

